home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 04 (1982-12)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 04 (1982-12)(Softdisk)(Side B).do / TMH.SUBS.bas < prev    next >
BASIC Source File  |  1996-12-24  |  9KB  |  185 lines

  1. 10  TEXT : HOME :A = 32: GOSUB 1000
  2. 15  PRINT : PRINT : PRINT 
  3. 20 A$ = "HELLO, THIS IS A DEMO.": GOSUB 2000
  4. 30  PRINT : PRINT :A$ = "]  ALL DONE!": GOSUB 3000
  5. 32  FLASH : PRINT : HTAB 2: PRINT " ";: VTAB 10: FOR I = 1 TO 2400: NEXT : NORMAL 
  6. 40  PRINT : PRINT :A$ = "WELL, NOT REALLY!": GOSUB 4000
  7. 50  PRINT : PRINT :A$ = "HIT A KEY": GOSUB 4000:A$ = "/-\" + CHR$(252): SPEED= 100: GOSUB 5000: SPEED= 255
  8. 60  GOSUB 6000:A = 50
  9. 70  POKE  -16368,0:A$ = "THIS IS A WHOLE BUNCH OF SUBROUTINES GROUPED TOGETHER.  YOU CAN CHOP AT WILL AND USE THEM IN YOUR OWN PROGRAMS.": GOSUB 7000
  10. 75  POKE 48,96
  11. 80  FOR X = 0 TO 39: FOR Y = 0 TO 47: PLOT X,Y: NEXT : NEXT 
  12. 90 I5 = 1:I1 = 39:I2 = 0:I3 = 47:I4 = 0:A = 32: GOSUB 8000:I5 = 0: GOSUB 8000
  13. 95 I2 = 0:A$ = "WELL, STAND BACK!  HERE COME...": GOSUB 9000:I2 = 1: PRINT :A$ = "THE DATA MONSTERS!": GOSUB 10000:I2 = 0
  14. 100  PRINT : PRINT :A$ = "THE DATA MONSTERS ARE MACHINE LANGUAGE  SUBROUTINES CONTAINED IN BASIC DATA     STATEMENTS."
  15. 102  GOSUB 10000: PRINT : PRINT 
  16. 105 A$ = "TO USE MORE THAN ONE OF THEM, IT'S      NECESSARY TO USE RESTORE@ FOR POINTING  TO THE RIGHT DATA LINES.  YOU CAN'T USE MORE THAN ONE AT THE SAME TIME BECAUSE  THEY ALL START AT 816 (DEC.)": GOSUB 10000
  17. 106  POKE  -16368,0
  18. 110 A$ = "<>": PRINT : PRINT : PRINT "HIT A KEY": SPEED= 80: GOSUB 5000: SPEED= 255: POKE  -16368,0
  19. 120  HGR : HOME : VTAB 21: GOSUB 11100:I2 = 1
  20. 125  HCOLOR= 7: HPLOT 0,0: CALL 62454
  21. 130 A$ = "   F   A   D  E   ": GOSUB 10000: CALL 816: GOSUB 11200
  22. 135  HOME : VTAB 21
  23. 140  HCOLOR= 2: HPLOT 0,0: CALL 62454:A$ = "  EXIT STAGE LEFT  ": GOSUB 10000: CALL 816
  24. 150  GOSUB 11300: HCOLOR= 3: HOME : VTAB 21: FOR I = 0 TO 159  STEP 3.4: HPLOT I,0 TO I,I TO 0,I: NEXT 
  25. 160 A$ = "  I N V E R S E  ": GOSUB 10000: FOR I = 1 TO 10: FOR J = 1 TO 40: NEXT : CALL 816: NEXT 
  26. 165  GOSUB 11400
  27. 170  HOME : VTAB 21
  28. 175  HGR2 : POKE  -16300,0: HCOLOR= 7: HPLOT 0,0: CALL 62454: POKE 230,32: POKE  -16301,0
  29. 180 A$ = "  S   W   I   T   C   H  ": GOSUB 10000: FOR I = 1 TO 6: FOR J = 1 TO 100: NEXT : CALL 816: NEXT : HOME : VTAB 21: GOSUB 11500
  30. 190 A$ = "  M  U  S  I  C  ": GOSUB 10000: FOR I = 1 TO 255: POKE 2,I: POKE 3,10: CALL 816: NEXT : FOR I = 255 TO 1  STEP  -1: POKE 2,I: POKE 3,10: CALL 816: NEXT 
  31. 200  GOSUB 11600: HOME : VTAB 21:A$ = "  F  L  I  P  ": GOSUB 10000
  32. 205  FOR I = 1 TO 2000: NEXT 
  33. 206  POKE  -16302,0
  34. 210  CALL 816: FOR I = 1 TO 10: POKE  -16299,0: FOR J = 1 TO 100: NEXT : POKE  -16300,0: FOR J = 1 TO 100: NEXT : NEXT : TEXT : HOME 
  35. 300  PRINT : PRINT :A$ = "WELL, THOSE'RE THEM.  FEEL FREE TO USE  THEM IN YOUR PROGRAMS.": GOSUB 4000
  36. 310  PRINT : PRINT :A$ = "(JUST A REMINDER...ALL PROGRAMS AND SUBS YOU HAVE JUST SEEN ARE BY CHRIS KOERITZ AND ARE ORIGINALLY WRITTEN IF NOT CON-  CEIVED.)":I2 = 1: GOSUB 10000
  37. 315  PRINT : PRINT 
  38. 320 A$ = "]  SEE YOU LATER!": GOSUB 3000: END 
  39. 900  END 
  40. 998  REM <CTRL-J><CTRL-J><CTRL-J>
  41. 1000  REM "RANDOM" CLEARER
  42. 1005  REM A=COLOR
  43. 1010  REM USES DATA
  44. 1015  POKE 48,A: REM A=COLOR
  45. 1020  FOR I = 1 TO 30: READ X,Y: FOR J = Y TO Y +7: HLIN X,X +7 AT J: NEXT :P =  PEEK( -16336) + PEEK( -16336) - PEEK( -16336) + PEEK( -16336) + PEEK( -16336) - PEEK( -16336): NEXT 
  46. 1025  RETURN 
  47. 1030  DATA 8,8,32,24,24,8,16,40,8,24,24,0,24,40,16,8,0,40,32,40,32,32,24,24,0,0,8,40,24,32,16,0,8,32,8,0,32,0,8,16,32,16,16,16,0,16,24,16,0,8,32,8,16,32,0,32,0,24,16,24
  48. 1098  REM <CTRL-J><CTRL-J><CTRL-J>
  49. 2000  REM LETTER FLYER
  50. 2005  REM A$=STRING TO FLY
  51. 2010 X1 =  POS(0) +1:Y1 =  PEEK(37) +1: IF  LEN(A$) >39  THEN A$ =  LEFT$(A$,39)
  52. 2015  FOR K = 1 TO  LEN(A$)
  53. 2020  IF  MID$ (A$,K,1) = " "  THEN X1 = X1 +1: NEXT 
  54. 2025 X =  INT( RND(1) *39) +1:Y =  INT( RND(1) *23) +1
  55. 2030 A =  SCRN( X -1,(Y -1) *2):B =  SCRN( X -1,(Y -1) *2 +1)
  56. 2035  HTAB X: VTAB Y: PRINT  MID$ (A$,K,1);
  57. 2040  COLOR= A: PLOT X -1,(Y -1) *2: COLOR= B: PLOT X -1,(Y -1) *2 +1
  58. 2045  IF X = X1  AND Y = Y1  THEN  HTAB X: VTAB Y: PRINT  MID$ (A$,K,1);:X1 = X1 +1: NEXT : PRINT : RETURN 
  59. 2050  IF X <X1  THEN X = X + INT((X1 -X)/2) +1
  60. 2055  IF X >X1  THEN X = X - INT((X -X1)/2 +1)
  61. 2060  IF Y >Y1  THEN Y = Y - INT((Y -Y1)/2 +1)
  62. 2065  IF Y <Y1  THEN Y = Y + INT((Y1 -Y)/2) +1
  63. 2070  GOTO 2030
  64. 2075  STOP :"HOW'D HE GET HERE?
  65. 2098  REM <CTRL-J><CTRL-J><CTRL-J>
  66. 3000  REM ENDER
  67. 3005  REM SETS UP SCREEN TO END
  68. 3010  REM A$=LAST MESSAGE
  69. 3015  REM SHOULD BEGIN WITH ]
  70. 3020 I1 =  PEEK(37) +1: FOR I =  LEN(A$) TO 1  STEP  -1
  71. 3025  VTAB I1: HTAB I: PRINT  MID$ (A$,I,1);
  72. 3030 I2 =  PEEK( -16336)
  73. 3035  NEXT : VTAB  PEEK(37): RETURN 
  74. 3098  REM <CTRL-J><CTRL-J><CTRL-J>
  75. 4000  REM PRINTER WITH TICK
  76. 4005  REM A$=MESSAGE
  77. 4010  FOR I = 1 TO  LEN(A$): IF  MID$ (A$,I,1) = " "  THEN  PRINT " ";: GOTO 4020
  78. 4015  PRINT  MID$ (A$,I,1);:P =  PEEK( -16336) - PEEK( -16336) + PEEK( -16336)
  79. 4020  NEXT : RETURN 
  80. 4098  REM <CTRL-J><CTRL-J><CTRL-J>
  81. 5000  REM SPINNER
  82. 5005  REM WAITS FOR KEY
  83. 5010  REM A$=SPINNING THING
  84. 5015  REM SPEED= WILL SET SPEED    (OBVIOUSLY)
  85. 5020  REM  E.G. "/-\"+CHR$(252)
  86. 5025 I1 =  PEEK(37) +1:I2 =  PEEK(36) +1
  87. 5030  FOR I = 1 TO  LEN(A$): VTAB I1: HTAB I2: PRINT  MID$ (A$,I,1);: IF  PEEK( -16384) >128  THEN 5040
  88. 5035  NEXT : IF  PEEK( -16384) <128  THEN 5030
  89. 5040  FOR I = 1 TO 1: NEXT : VTAB I1: HTAB I2: RETURN 
  90. 5098  REM <CTRL-J><CTRL-J><CTRL-J>
  91. 6000  REM BYE-BYE
  92. 6005  VTAB 24
  93. 6010  FOR I = 1 TO 24: PRINT :P =  PEEK( -16336) + PEEK( -16336) + PEEK( -16336): NEXT : RETURN 
  94. 6098  REM <CTRL-J><CTRL-J><CTRL-J>
  95. 7000  REM MOVING DISPLAY
  96. 7005  REM A$=WORDS TO MOVE,           A=LENGTH DELAY
  97. 7010 I1 = 40:I2 =  PEEK(37)
  98. 7015  FOR I = 1 TO  LEN(A$) +39: VTAB I2: HTAB I1: PRINT  MID$ (A$,1 +(I -39) *(I1 = 1),41 -I1);: VTAB I2: HTAB I1
  99. 7020  FOR I3 = 1 TO A: NEXT : CALL  -868:I1 = I1 -1: IF I1 <1  THEN I1 = 1
  100. 7025  NEXT : RETURN 
  101. 7098  REM <CTRL-J><CTRL-J><CTRL-J>
  102. 8000  REM WIPER
  103. 8005  REM  I1,I2=TWO X'S
  104. 8010  REM  I3,I4=TWO Y'S
  105. 8015  REM A="COLOR"
  106. 8020  REM  I5=1 FOR --> OR <--
  107. 8025  REM    =0 FOR V OR ^
  108. 8030  POKE 48,A
  109. 8035  IF I5  THEN 8070
  110. 8040  FOR I = I3 TO I4  STEP  SGN(I4 -I3): HLIN I1,I2 AT I: POKE 48,160: HLIN I1,I2 AT I: POKE 48,A: NEXT 
  111. 8045  RETURN 
  112. 8070  FOR I = I1 TO I2  STEP  SGN(I2 -I1): VLIN I3,I4 AT I: POKE 48,160: VLIN I3,I4 AT I: POKE 48,A: NEXT 
  113. 8075  RETURN 
  114. 8098  REM <CTRL-J><CTRL-J><CTRL-J>
  115. 9000  REM  FOOLS END
  116. 9010  REM A$=MESSAGE PERSON WILL      UNKNOWINGLY TYPE
  117. 9020  PRINT "]";:I = 0
  118. 9030  GET A1$:I = I +1: PRINT  MID$ (A$,I,1);: IF I =  > LEN(A$)  THEN  RETURN 
  119. 9040  GOTO 9030
  120. 9098  REM <CTRL-J><CTRL-J><CTRL-J>
  121. 10000  REM  CURSOR PRINTER
  122. 10005  REM A$=MESSAGE, I2=CLICK   OR NOT (1 OR 0)
  123. 10010  FOR I = 1 TO  LEN(A$): INVERSE : PRINT " ";: NORMAL : PRINT  CHR$(8);:I1 =  PEEK( -16336 *I2): PRINT  MID$ (A$,I,1);: NEXT 
  124. 10015  RETURN 
  125. 10980  REM <CTRL-J><CTRL-J><CTRL-J>
  126. 11000  REM  BELOW ARE ASSORTED   POKE IN SUBS.
  127. 11005  REM USE RESTORE@ TO GET TO RIGHT LINE OF DATA IF MORE THAN ONE IS USED.
  128. 11010  REM <CTRL-J><CTRL-J><CTRL-J>
  129. 11100  REM FADE HIRES SCREEN
  130. 11101  REM  CALL 816
  131. 11105  FOR A6 = 816 TO 860
  132. 11110  READ A7: POKE A6,A7
  133. 11115  NEXT A6
  134. 11120  DATA 169,0,133,255,169,32,133,39,169,0,133,38,160,0,177,38,74,145,38,230,38,240,3,76,62,3,230,39,165,39
  135. 11125  DATA 201,64,144,236,230,255,165,255,201,8,144,218,96,105,40
  136. 11130  RETURN 
  137. 11199  REM <CTRL-J><CTRL-J><CTRL-J>
  138. 11200  REM MOVE PICTURE OFF      SCREEN
  139. 11201  REM  CALL 816
  140. 11205  FOR A6 = 816 TO 911
  141. 11210  READ A7: POKE A6,A7
  142. 11215  NEXT A6
  143. 11220  DATA 169,32,133,230,141,38,3,169,32,133,39,169,0,133,38,169,253,141,0,1,160,0,169,0,133,255,177,38,170,165
  144. 11225  DATA 255,145,38,134,255,200,192,40,144,242,165,38,24,105,40,238,0,1,240,15,133,38,165,39,105,0,133,39,201,64
  145. 11230  DATA 240,15,76,68,3,105,8,133,38,169,253,141,0,1,76,100,3,238,69,3,173,69,3,201,40,144,176,169,0,141
  146. 11235  DATA 69,3,96,19,200,20
  147. 11240  RETURN 
  148. 11299  REM <CTRL-J><CTRL-J><CTRL-J>
  149. 11300  REM INVERT HIRES SCREEN
  150. 11301  REM  CALL 816
  151. 11305  FOR A6 = 816 TO 845
  152. 11310  READ A7: POKE A6,A7
  153. 11315  NEXT A6
  154. 11320  DATA 162,0,169,32,133,39,169,0,133,38,161,38,73,127,129,38,230,38,208,246,230,39,165,39,201,64,208,238,96,39
  155. 11325  RETURN 
  156. 11399  REM <CTRL-J><CTRL-J><CTRL-J>
  157. 11400  REM SWITCH PAGE 1 AND 2
  158. 11401  REM  CALL 816
  159. 11405  FOR A6 = 816 TO 861
  160. 11410  READ A7: POKE A6,A7
  161. 11415  NEXT A6
  162. 11420  DATA 162,0,169,32,133,39,169,64,133,47,169,0,133,46,133,38,161,38,133,255,161,46,129,38,165,255,129,46,230,46
  163. 11425  DATA 230,38,208,238,230,47,230,39,165,39,201,64,208,228,96,238
  164. 11430  RETURN 
  165. 11499  REM <CTRL-J><CTRL-J><CTRL-J>
  166. 11500  REM MUSIC
  167. 11501  REM  POKE 2, TONE
  168. 11502  REM  POKE 3, LENGTH
  169. 11503  REM  CALL 816
  170. 11505  FOR A6 = 816 TO 843
  171. 11510  READ A7: POKE A6,A7
  172. 11515  NEXT A6
  173. 11520  DATA 173,3,0,141,1,0,173,2,0,141,0,0,173,48,192,206,0,0,208,251,206,1,0,208,237,96,39,133
  174. 11525  RETURN 
  175. 11599  REM <CTRL-J><CTRL-J><CTRL-J>
  176. 11600  REM  FLIP HIRES
  177. 11601  REM   CALL 816
  178. 11605  FOR A6 = 816 TO 880
  179. 11610  READ A7: POKE A6,A7
  180. 11615  NEXT A6
  181. 11620  DATA 169,0,133,1,169,191,133,0,160,0,162,0,169,64,133,230,165,1,32,17,244,165,38,133,46,165,39,133,47,162
  182. 11625  DATA 0,160,0,169,32,133,230,165,0,32,17,244,160,0,177,38,145,46,200,192,40,208,247,198,0,230,1,165,1,201
  183. 11630  DATA 192,208,201,96,3
  184. 11635  RETURN 
  185. 11699  REM <CTRL-J><CTRL-J><CTRL-J>